package com.ruoyi.web.controller.app.util;

import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.web.controller.app.config.WxConfig;
import org.springframework.web.client.RestTemplate;

/**
 * @Author: TangYuan
 * @Date: 2024/7/30 15:25
 * @描述:
 */
public class TokenUtil {
    
    /**
     * 获取小程序token
     * @return {@link String}
     * @Date: 2024/7/30 下午3:32
     */
    public static String getAppletToken() {
        
        // 先从缓存查看有没有
        String token = "";
        String tokenUrl = String.format("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s", WxConfig.getAppId(), WxConfig.getAppSecret());
        
        // 获取token
        RestTemplate restTemplate = new RestTemplate();
        String tokenResult = restTemplate.getForObject(tokenUrl, String.class);
        JSONObject tokenObject = JSONObject.parseObject(tokenResult);
        token = tokenObject.getString("access_token");
        
        if (StringUtils.isBlank(token)) {
            throw new RuntimeException("小程序token获取失败，" + tokenObject.getString("errmsg"));
        }
        return token;
    }
}
